package com.srcptit.java.training.kienbd.btvn1;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Bai7TuDaiNhat {   
    public static void main(String[] args) throws IOException {
            // Sử dụng Buffered đọc file.
            BufferedReader bufr = new BufferedReader(new FileReader("data7.txt")); 
            
            // Kiểm tra ngoại lệ.  
            try {
                // Kiểm tra file trống.
                if( bufr.ready()==false )    throw new myEx1();// Bắt lỗi file trống    
                
                // Đọc dữ liệu từ file.
                String dataout = bufr.readLine();
                if( dataout==null )          throw new myEx2();//Bắt lỗi xâu rỗng. 
                
                TheWordIsMostLength(dataout);
                // Kết thúc đọc file.            
                bufr.close();
            }catch(myEx1 e){
                System.out.println("Error! File is Empty.");
            }catch(myEx2 e){
                System.out.println("Error! String is empty.");
            }catch(Exception e) {
                System.out.println("Error! Input again, please.");
            }            
    }
    static void TheWordIsMostLength(String Question) throws IOException{
            // Sử dụng Buffered ghi file.
            BufferedWriter bufw = new BufferedWriter(new FileWriter("result7.txt"));  
            
            // Use SringTokenizer.
            StringTokenizer stk = new StringTokenizer(Question," ",false);
            
            String str = new String();// Xâu con của stk.
            String lenest = new String();// Xâu có độ dài lớn nhất.
            // Khai báo biến
            int length;// Độ dài từ.     
            int count = 0;// Vị trí của từng từ.
            int MAX = 0;// Độ dài lớn nhất.          
            int position = 0;// Vị trí của từ có độ dài lớn nhất.
            
            while(stk.hasMoreTokens()){
                str = stk.nextToken();
                length = str.length();
                count++;
                if( length>MAX ){
                    lenest = str;
                    MAX = length;
                    position = count;
                }
            }
            // Ghi kết quả vào file.
            bufw.write("The Word "+lenest+" is longgest in String and position : "+position); 
            bufw.close();
    }
}
